<!DOCTYPE html>
<html lang="en-us">
<head>
	<meta charSet="UTF-8" />
	<meta name="viewport" content="width=device-width, initial-scale=1" />
	<link rel="apple-touch-icon" sizes="57x57" href="/CsvHelper/favicons/apple-icon-57x57.png" />
	<link rel="apple-touch-icon" sizes="60x60" href="/CsvHelper/favicons/apple-icon-60x60.png" />
	<link rel="apple-touch-icon" sizes="72x72" href="/CsvHelper/favicons/apple-icon-72x72.png" />
	<link rel="apple-touch-icon" sizes="76x76" href="/CsvHelper/favicons/apple-icon-76x76.png" />
	<link rel="apple-touch-icon" sizes="114x114" href="/CsvHelper/favicons/apple-icon-114x114.png" />
	<link rel="apple-touch-icon" sizes="120x120" href="/CsvHelper/favicons/apple-icon-120x120.png" />
	<link rel="apple-touch-icon" sizes="144x144" href="/CsvHelper/favicons/apple-icon-144x144.png" />
	<link rel="apple-touch-icon" sizes="152x152" href="/CsvHelper/favicons/apple-icon-152x152.png" />
	<link rel="apple-touch-icon" sizes="180x180" href="/CsvHelper/favicons/apple-icon-180x180.png" />
	<link rel="icon" type="image/png" sizes="192x192" href="/CsvHelper/favicons/android-icon-192x192.png" />
	<link rel="icon" type="image/png" sizes="32x32" href="/CsvHelper/favicons/favicon-32x32.png" />
	<link rel="icon" type="image/png" sizes="96x96" href="/CsvHelper/favicons/favicon-96x96.png" />
	<link rel="icon" type="image/png" sizes="16x16" href="/CsvHelper/favicons/favicon-16x16.png" />
	<link rel="manifest" href="/CsvHelper/manifest.json" />
	<meta name="msapplication-TileColor" content="#ffffff" />
	<meta name="msapplication-TileImage" content="/ms-icon-144x144.png" />
	<meta name="theme-color" content="#ffffff" />
	<title>V25 | CsvHelper</title>

	
	
		<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bulma/0.9.1/css/bulma.min.css" />
	
	<link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/10.5.0/styles/default.min.css" />
	<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/10.5.0/styles/vs.min.css" />
	<link rel="stylesheet" href="/CsvHelper/styles/index.css" />

	<script defer src="https://use.fontawesome.com/releases/v5.14.0/js/all.js"></script>
	<script src="//cdnjs.cloudflare.com/ajax/libs/highlight.js/10.5.0/highlight.min.js"></script>
</head>
<body>
	<header id="header" class="header">
	<nav class="navbar is-light">
		<div class="navbar-brand">
			<a class="navbar-item" href="/CsvHelper">
				<img src="/CsvHelper/images/logo.svg" width="66" height="28" />
			</a>
			<div id="navbar-burger" class="navbar-burger">
				<span></span>
				<span></span>
				<span></span>
			</div>
		</div>
		<div id="navbar-menu" class="navbar-menu">
			<div class="navbar-start">
				<a class="navbar-item" href="/CsvHelper/getting-started">Getting Started</a>
				<a class="navbar-item" href="/CsvHelper/examples">Examples</a>
				<a class="navbar-item" href="/CsvHelper/migration">Migration</a>
				<a class="navbar-item" href="/CsvHelper/change-log">Change Log</a>
			</div>
			<div class="navbar-end">
				<a class="navbar-item" href="https://twitter.com/JoshClose">
					<span class="icon">
						<i class="fab fa-twitter"></i>
					</span>
				</a>
				<a class="navbar-item" href="https://github.com/JoshClose/CsvHelper">
					<span class="icon">
						<i class="fab fa-github"></i>
					</span>
				</a>
			</div>
		</div>
	</nav>
</header>


	<main id="main" class="container is-fluid">
		<div class="columns is-variable is-1">
				<div class="column">
					<div class="content">
						<h1 id="migrating-from-version-24-to-25">Migrating from version 24 to 25</h1>
<h2 id="delegates">Delegates</h2>
<p>All delegate args had their non-parameterless constructor removed
in favor of using <code>init</code>.</p>
<p><strong>BadDataFoundArgs</strong></p>
<pre><code class="language-cs">// v25
var args = new BadDataRoundArgs(field, rawRecord, context);

// v26
var args = new BadDataFoundArgs
{
	Field = field,
	RawRecord = rawRecord,
	Context = context,
};
</code></pre>
<p><strong>ConvertFromStringArgs</strong></p>
<pre><code class="language-cs">// v25
var args = new ConvertFromStringArgs(row);

// v26
var args = new ConvertFromStringArgs
{
	Row = row,
};
</code></pre>
<p><strong>ConvertToStringArgs</strong></p>
<pre><code class="language-cs">// v25
var args = new ConvertToStringArgs(value);

// v26
var args = new ConvertToStringArgs
{
	Value = value,
};
</code></pre>
<p><strong>GetConstructorArgs</strong></p>
<pre><code class="language-cs">// v25
var args = new GetConstructorArgs(type);

// v26
var args = new GetConstructorArgs
{
	ClassType = type,
};
</code></pre>
<p><strong>GetDynamicPropertyNameArgs</strong></p>
<pre><code class="language-cs">// v25
var args = new GetDynamicPropertyNameArgs(index, context);

// v26
var args = new GetDynamicPropertyNameArgs
{
	FieldIndex = index,
	Context = context,
};
</code></pre>
<p><strong>HeaderValidatedArgs</strong></p>
<pre><code class="language-cs">// v25
var args = new HeaderValidatedArgs(headers, context);

// v26
var args = new HeaderValidatedArgs
{
	InvalidHeaders = headers,
	Context = context,
};
</code></pre>
<p><strong>MissingFieldFoundArgs</strong></p>
<pre><code class="language-cs">// v25
var args = new MissingFieldFoundArgs(headerNames, index, context);

// v26
var args = new MissingFieldFoundArgs
{
	HeaderNames = headerNames,
	Index = index,
	Context = context,
};
</code></pre>
<p><strong>PrepareHeaderForMatchArgs</strong></p>
<pre><code class="language-cs">// v25
var args = new PrepareHeaderForMatchArgs(header, fieldIndex);

// v26
var args = new PrepareHeaderForMatchArgs
{
	Header = header,
	FieldIndex = fieldIndex,
};
</code></pre>
<p><strong>ReadingExceptionOccurredArgs</strong></p>
<pre><code class="language-cs">// v25
var args = new ReadingExceptionOccurredArgs(exception);

// v26
var args = new ReadingExceptionOccurredArgs
{
	Exception = exception,
};
</code></pre>
<p><strong>ReferenceHeaderPrefixArgs</strong></p>
<pre><code class="language-cs">// v25
var args = new ReferenceHeaderPrefixArgs(memberType, memberName);

// v26
var args = new ReferenceHeaderPrefixArgs
{
	MemberType = memberType,
	MemberName = memberName,
};
</code></pre>
<p><strong>ShouldQuoteArgs</strong></p>
<pre><code class="language-cs">// v25
var args = new ShouldQuoteArgs(field, fieldType, row);

// v26
var args = new ShouldQuoteArgs
{
	Field = field,
	FieldType = fieldType,
	Row = row,
};
</code></pre>
<p><strong>ShouldSkipRecordArgs</strong></p>
<pre><code class="language-cs">// v25
var args = new ShouldSkipRecordArgs(record);

// v26
var args = new ShouldSkipRecordArgs
{
	Record = record,
};
</code></pre>
<p><strong>ShouldUseConstructorParametersArgs</strong></p>
<pre><code class="language-cs">// v25
var args = new ShouldUseConstructorParametersArgs(parameterType);

// v26
var args = new ShouldUseConstructorParametersArgs
{
	ParameterType = parameterType,
};
</code></pre>
<p><strong>ValidateArgs</strong></p>
<pre><code class="language-cs">// v25
var args = new ValidateArgs(field);

// v26
var args = new ValidateArgs
{
	Field = field,
};
</code></pre>

					</div>
				</div>
		</div>
	</main>

	<br /><br />

	<footer id="footer" class="footer">
	<div class="has-text-centered">&copy; 2009-2024 Josh Close</div>
</footer>



	<script>
		hljs.configure({
			tabReplace: "    "
		});
		hljs.initHighlightingOnLoad();
	</script>
	<script src="/CsvHelper/scripts/header.js"></script>
	<script src="/CsvHelper/scripts/sidebar.js"></script>
	
</body>
</html>
